package constants;


public interface MetamodelsRuleConstants
{
   final int RULE_METAMODELSTART                                             =   0;  // <MetamodelStart> ::= <Metamodel> <Constraints>
   final int RULE_METAMODELSTART2                                            =   1;  // <MetamodelStart> ::= <Metamodel>
   final int RULE_METAMODEL_METAMODEL_LBRACE_RBRACE                          =   2;  // <Metamodel> ::= metamodel <Identifier> '{' <Classifiers> '}'
   final int RULE_CLASSIFIER                                                 =   3;  // <Classifier> ::= 
   final int RULE_CLASSIFIER2                                                =   4;  // <Classifier> ::= <Enumeration>
   final int RULE_CLASSIFIER3                                                =   5;  // <Classifier> ::= <Class>
   final int RULE_ENUMERATION_ENUMERATION_LBRACE_RBRACE                      =   6;  // <Enumeration> ::= enumeration <Identifier> '{' <IdentifiersSemicolon> '}'
   final int RULE_CLASS_CLASS_LBRACE_RBRACE                                  =   7;  // <Class> ::= class <Identifier> <Extensions> '{' <Features> '}'
   final int RULE_EXTENSIONS                                                 =   8;  // <Extensions> ::= 
   final int RULE_EXTENSIONS_EXTENDS                                         =   9;  // <Extensions> ::= extends <IdentifiersComma>
   final int RULE_FEATURE                                                    =  10;  // <Feature> ::= 
   final int RULE_FEATURE2                                                   =  11;  // <Feature> ::= <Attribute>
   final int RULE_FEATURE3                                                   =  12;  // <Feature> ::= <Reference>
   final int RULE_ATTRIBUTE_ATTRIBUTE_COLON_SEMI                             =  13;  // <Attribute> ::= attribute <Identifier> ':' <Identifier> ';'
   final int RULE_REFERENCE_REFERENCE_COLON_SEMI                             =  14;  // <Reference> ::= reference <Identifier> ':' <Identifier> <Multiplicity> <Opposite> ';'
   final int RULE_MULTIPLICITY                                               =  15;  // <Multiplicity> ::= 
   final int RULE_MULTIPLICITY_LBRACKET_NATURAL_MINUS_NATURAL_RBRACKET       =  16;  // <Multiplicity> ::= '[' Natural '-' Natural ']'
   final int RULE_MULTIPLICITY_LBRACKET_NATURAL_MINUS_TIMES_RBRACKET         =  17;  // <Multiplicity> ::= '[' Natural '-' '*' ']'
   final int RULE_OPPOSITE                                                   =  18;  // <Opposite> ::= 
   final int RULE_OPPOSITE_OPPOSITEOF                                        =  19;  // <Opposite> ::= oppositeOf <Identifier>
   final int RULE_IDENTIFIER_IDENTIFIER                                      =  20;  // <Identifier> ::= Identifier
   final int RULE_IDENTIFIERSSEMICOLON_SEMI                                  =  21;  // <IdentifiersSemicolon> ::= <Identifier> ';'
   final int RULE_IDENTIFIERSSEMICOLON_SEMI2                                 =  22;  // <IdentifiersSemicolon> ::= <Identifier> ';' <IdentifiersSemicolon>
   final int RULE_IDENTIFIERSCOMMA_COMMA                                     =  23;  // <IdentifiersComma> ::= <Identifier> ',' <IdentifiersComma>
   final int RULE_IDENTIFIERSCOMMA                                           =  24;  // <IdentifiersComma> ::= <Identifier>
   final int RULE_FEATURES                                                   =  25;  // <Features> ::= <Feature>
   final int RULE_FEATURES2                                                  =  26;  // <Features> ::= <Features> <Feature>
   final int RULE_CLASSIFIERS                                                =  27;  // <Classifiers> ::= <Classifier>
   final int RULE_CLASSIFIERS2                                               =  28;  // <Classifiers> ::= <Classifiers> <Classifier>
   final int RULE_CONSTRAINTS_CONSTRAINTS_LBRACE_RBRACE                      =  29;  // <Constraints> ::= constraints '{' <OclExpressionList> '}'
   final int RULE_OCLEXPRESSIONLIST_SEMI                                     =  30;  // <OclExpressionList> ::= <OclExpression> ';'
   final int RULE_OCLEXPRESSIONLIST_SEMI2                                    =  31;  // <OclExpressionList> ::= <OclExpression> ';' <OclExpressionList>
   final int RULE_VARIABLEDECLARATIONLIST                                    =  32;  // <VariableDeclarationList> ::= <VariableDeclaration>
   final int RULE_VARIABLEDECLARATIONLIST_COMMA                              =  33;  // <VariableDeclarationList> ::= <VariableDeclaration> ',' <VariableDeclarationList>
   final int RULE_VARIABLEDECLARATION                                        =  34;  // <VariableDeclaration> ::= <SimpleName>
   final int RULE_VARIABLEDECLARATION_COLON                                  =  35;  // <VariableDeclaration> ::= <SimpleName> ':' <Type>
   final int RULE_VARIABLEDECLARATION_EQ                                     =  36;  // <VariableDeclaration> ::= <SimpleName> '=' <OclExpression>
   final int RULE_VARIABLEDECLARATION_COLON_EQ                               =  37;  // <VariableDeclaration> ::= <SimpleName> ':' <Type> '=' <OclExpression>
   final int RULE_TYPE                                                       =  38;  // <Type> ::= <PathName>
   final int RULE_TYPE2                                                      =  39;  // <Type> ::= <CollectionType>
   final int RULE_TYPE3                                                      =  40;  // <Type> ::= <TupleType>
   final int RULE_COLLECTIONTYPE_LPARAN_RPARAN                               =  41;  // <CollectionType> ::= <CollectionKind> '(' <Type> ')'
   final int RULE_TUPLETYPE_TUPLETYPE_LPARAN_RPARAN                          =  42;  // <TupleType> ::= TupleType '(' <VariableDeclarationList> ')'
   final int RULE_OCLEXPRESSION                                              =  43;  // <OclExpression> ::= <Step12OclExpression>
   final int RULE_OCLEXPRESSION_UNION                                        =  44;  // <OclExpression> ::= <OclExpression> union <Step12OclExpression>
   final int RULE_OCLEXPRESSION_IN                                           =  45;  // <OclExpression> ::= <OclExpression> in <OclExpression>
   final int RULE_OCLEXPRESSION_INTERSECT                                    =  46;  // <OclExpression> ::= <OclExpression> intersect <OclExpression>
   final int RULE_STEP12OCLEXPRESSION                                        =  47;  // <Step12OclExpression> ::= <Step11OclExpression>
   final int RULE_STEP12OCLEXPRESSION_IMPLIES                                =  48;  // <Step12OclExpression> ::= <Step12OclExpression> implies <Step11OclExpression>
   final int RULE_STEP11OCLEXPRESSION                                        =  49;  // <Step11OclExpression> ::= <Step10OclExpression>
   final int RULE_STEP11OCLEXPRESSION_XOR                                    =  50;  // <Step11OclExpression> ::= <Step11OclExpression> xor <Step10OclExpression>
   final int RULE_STEP10OCLEXPRESSION                                        =  51;  // <Step10OclExpression> ::= <Step9OclExpression>
   final int RULE_STEP10OCLEXPRESSION_OR                                     =  52;  // <Step10OclExpression> ::= <Step10OclExpression> or <Step9OclExpression>
   final int RULE_STEP9OCLEXPRESSION                                         =  53;  // <Step9OclExpression> ::= <Step8OclExpression>
   final int RULE_STEP9OCLEXPRESSION_AND                                     =  54;  // <Step9OclExpression> ::= <Step9OclExpression> and <Step8OclExpression>
   final int RULE_STEP8OCLEXPRESSION                                         =  55;  // <Step8OclExpression> ::= <Step7OclExpression>
   final int RULE_STEP8OCLEXPRESSION_EQEQ                                    =  56;  // <Step8OclExpression> ::= <Step8OclExpression> '==' <Step7OclExpression>
   final int RULE_STEP8OCLEXPRESSION_LTGT                                    =  57;  // <Step8OclExpression> ::= <Step8OclExpression> '<>' <Step7OclExpression>
   final int RULE_STEP7OCLEXPRESSION                                         =  58;  // <Step7OclExpression> ::= <Step6OclExpression>
   final int RULE_STEP7OCLEXPRESSION_LT                                      =  59;  // <Step7OclExpression> ::= <Step7OclExpression> '<' <Step6OclExpression>
   final int RULE_STEP7OCLEXPRESSION_LTEQ                                    =  60;  // <Step7OclExpression> ::= <Step7OclExpression> '<=' <Step6OclExpression>
   final int RULE_STEP7OCLEXPRESSION_GT                                      =  61;  // <Step7OclExpression> ::= <Step7OclExpression> '>' <Step6OclExpression>
   final int RULE_STEP7OCLEXPRESSION_GTEQ                                    =  62;  // <Step7OclExpression> ::= <Step7OclExpression> '>=' <Step6OclExpression>
   final int RULE_STEP6OCLEXPRESSION                                         =  63;  // <Step6OclExpression> ::= <Step5OclExpression>
   final int RULE_STEP6OCLEXPRESSION_PLUS                                    =  64;  // <Step6OclExpression> ::= <Step6OclExpression> '+' <Step5OclExpression>
   final int RULE_STEP6OCLEXPRESSION_MINUS                                   =  65;  // <Step6OclExpression> ::= <Step6OclExpression> '-' <Step5OclExpression>
   final int RULE_STEP5OCLEXPRESSION                                         =  66;  // <Step5OclExpression> ::= <Step4OclExpression>
   final int RULE_STEP5OCLEXPRESSION_TIMES                                   =  67;  // <Step5OclExpression> ::= <Step5OclExpression> '*' <Step4OclExpression>
   final int RULE_STEP5OCLEXPRESSION_DIV                                     =  68;  // <Step5OclExpression> ::= <Step5OclExpression> '/' <Step4OclExpression>
   final int RULE_STEP5OCLEXPRESSION_DIV2                                    =  69;  // <Step5OclExpression> ::= <Step5OclExpression> div <Step4OclExpression>
   final int RULE_STEP5OCLEXPRESSION_MOD                                     =  70;  // <Step5OclExpression> ::= <Step5OclExpression> mod <Step4OclExpression>
   final int RULE_STEP4OCLEXPRESSION                                         =  71;  // <Step4OclExpression> ::= <Step3OclExpression>
   final int RULE_STEP4OCLEXPRESSION_NOT                                     =  72;  // <Step4OclExpression> ::= not <Step3OclExpression>
   final int RULE_STEP4OCLEXPRESSION_MINUS                                   =  73;  // <Step4OclExpression> ::= '-' <Step3OclExpression>
   final int RULE_STEP3OCLEXPRESSION                                         =  74;  // <Step3OclExpression> ::= <Step2OclExpression>
   final int RULE_STEP3OCLEXPRESSION_CARETCARET_LPARAN_RPARAN                =  75;  // <Step3OclExpression> ::= <Step3OclExpression> '^^' <SimpleName> '(' ')'
   final int RULE_STEP3OCLEXPRESSION_CARET_LPARAN_RPARAN                     =  76;  // <Step3OclExpression> ::= <Step3OclExpression> '^' <SimpleName> '(' ')'
   final int RULE_STEP3OCLEXPRESSION_DOT                                     =  77;  // <Step3OclExpression> ::= <Step3OclExpression> '.' <SimpleName>
   final int RULE_STEP3OCLEXPRESSION_DOT_LPARAN_RPARAN                       =  78;  // <Step3OclExpression> ::= <Step3OclExpression> '.' <SimpleName> '(' ')'
   final int RULE_STEP3OCLEXPRESSION_DOT_LPARAN_RPARAN2                      =  79;  // <Step3OclExpression> ::= <Step3OclExpression> '.' <SimpleName> '(' <ArgumentList> ')'
   final int RULE_STEP3OCLEXPRESSION_MINUSGT_LPARAN_RPARAN                   =  80;  // <Step3OclExpression> ::= <Step3OclExpression> '->' <SimpleName> '(' ')'
   final int RULE_STEP3OCLEXPRESSION_MINUSGT_LPARAN_PIPE_RPARAN              =  81;  // <Step3OclExpression> ::= <Step3OclExpression> '->' <SimpleName> '(' <VariableDeclaration> '|' <OclExpression> ')'
   final int RULE_STEP3OCLEXPRESSION_MINUSGT_LPARAN_RPARAN2                  =  82;  // <Step3OclExpression> ::= <Step3OclExpression> '->' <SimpleName> '(' <OclExpression> ')'
   final int RULE_STEP3OCLEXPRESSION_MINUSGT_ITERATE_LPARAN_PIPE_RPARAN      =  83;  // <Step3OclExpression> ::= <Step3OclExpression> '->' iterate '(' <VariableDeclaration> '|' <OclExpression> ')'
   final int RULE_STEP3OCLEXPRESSION_MINUSGT_ITERATE_LPARAN_SEMI_PIPE_RPARAN =  84;  // <Step3OclExpression> ::= <Step3OclExpression> '->' iterate '(' <VariableDeclaration> ';' <VariableDeclaration> '|' <OclExpression> ')'
   final int RULE_STEP2OCLEXPRESSION                                         =  85;  // <Step2OclExpression> ::= <Step1OclExpression>
   final int RULE_STEP2OCLEXPRESSION_LET_IN                                  =  86;  // <Step2OclExpression> ::= let <VariableDeclarationList> in <OclExpression>
   final int RULE_STEP1OCLEXPRESSION                                         =  87;  // <Step1OclExpression> ::= <LiteralExp>
   final int RULE_STEP1OCLEXPRESSION2                                        =  88;  // <Step1OclExpression> ::= <PathName>
   final int RULE_STEP1OCLEXPRESSION_LPARAN_RPARAN                           =  89;  // <Step1OclExpression> ::= '(' <OclExpression> ')'
   final int RULE_STEP1OCLEXPRESSION_IF_THEN_ELSE_ENDIF                      =  90;  // <Step1OclExpression> ::= if <OclExpression> then <OclExpression> else <OclExpression> endif
   final int RULE_STEP1OCLEXPRESSION_LPARAN_RPARAN2                          =  91;  // <Step1OclExpression> ::= <Step1OclExpression> '(' ')'
   final int RULE_STEP1OCLEXPRESSION_LBRACKET_RBRACKET                       =  92;  // <Step1OclExpression> ::= <Step1OclExpression> '[' <ArgumentList> ']'
   final int RULE_STEP1OCLEXPRESSION_ALLINSTANCES_LPARAN_RPARAN              =  93;  // <Step1OclExpression> ::= allInstances '(' <SimpleName> ')'
   final int RULE_STEP1OCLEXPRESSION_EMPTY                                   =  94;  // <Step1OclExpression> ::= empty
   final int RULE_ARGUMENTLIST                                               =  95;  // <ArgumentList> ::= <OclExpression>
   final int RULE_ARGUMENTLIST_COMMA                                         =  96;  // <ArgumentList> ::= <OclExpression> ',' <ArgumentList>
   final int RULE_LITERALEXP                                                 =  97;  // <LiteralExp> ::= <CollectionLiteralExp>
   final int RULE_LITERALEXP2                                                =  98;  // <LiteralExp> ::= <TupleTypeExp>
   final int RULE_LITERALEXP3                                                =  99;  // <LiteralExp> ::= <PrimitiveLiteralExp>
   final int RULE_COLLECTIONLITERALEXP_LBRACE_RBRACE                         = 100;  // <CollectionLiteralExp> ::= <CollectionKind> '{' <CollectionLiteralParts> '}'
   final int RULE_COLLECTIONLITERALEXP_LBRACE_RBRACE2                        = 101;  // <CollectionLiteralExp> ::= <CollectionKind> '{' '}'
   final int RULE_COLLECTIONKIND_SET                                         = 102;  // <CollectionKind> ::= Set
   final int RULE_COLLECTIONKIND_BAG                                         = 103;  // <CollectionKind> ::= Bag
   final int RULE_COLLECTIONKIND_SEQUENCE                                    = 104;  // <CollectionKind> ::= Sequence
   final int RULE_COLLECTIONKIND_COLLECTION                                  = 105;  // <CollectionKind> ::= Collection
   final int RULE_COLLECTIONKIND_ORDEREDSET                                  = 106;  // <CollectionKind> ::= OrderedSet
   final int RULE_COLLECTIONLITERALPARTS                                     = 107;  // <CollectionLiteralParts> ::= <CollectionLiteralPart>
   final int RULE_COLLECTIONLITERALPARTS_COMMA                               = 108;  // <CollectionLiteralParts> ::= <CollectionLiteralPart> ',' <CollectionLiteralParts>
   final int RULE_COLLECTIONLITERALPART                                      = 109;  // <CollectionLiteralPart> ::= <OclExpression>
   final int RULE_COLLECTIONLITERALPART2                                     = 110;  // <CollectionLiteralPart> ::= <CollectionRange>
   final int RULE_COLLECTIONRANGE_DOTDOT                                     = 111;  // <CollectionRange> ::= <OclExpression> '..' <OclExpression>
   final int RULE_TUPLETYPEEXP_TUPLE_QUOTE_QUOTE                             = 112;  // <TupleTypeExp> ::= Tuple '"' <VariableDeclarationList> '"'
   final int RULE_PRIMITIVELITERALEXP                                        = 113;  // <PrimitiveLiteralExp> ::= <Int>
   final int RULE_PRIMITIVELITERALEXP2                                       = 114;  // <PrimitiveLiteralExp> ::= <Real>
   final int RULE_PRIMITIVELITERALEXP3                                       = 115;  // <PrimitiveLiteralExp> ::= <String>
   final int RULE_PRIMITIVELITERALEXP_TRUE                                   = 116;  // <PrimitiveLiteralExp> ::= true
   final int RULE_PRIMITIVELITERALEXP_FALSE                                  = 117;  // <PrimitiveLiteralExp> ::= false
   final int RULE_PATHNAME                                                   = 118;  // <PathName> ::= <SimpleName>
   final int RULE_PATHNAME_COLONCOLON                                        = 119;  // <PathName> ::= <PathName> '::' <SimpleName>
   final int RULE_INT_NATURAL                                                = 120;  // <Int> ::= Natural
   final int RULE_REAL_POSITIVEREAL                                          = 121;  // <Real> ::= PositiveReal
   final int RULE_STRING_STRINGLITERAL                                       = 122;  // <String> ::= StringLiteral
   final int RULE_SIMPLENAME                                                 = 123;  // <SimpleName> ::= <Identifier>
};
